package com.hex.ds.hdtp.core.app.data.contrast.service;


import com.hex.ds.hdtp.core.app.common.entity.BasicContrastInfo;
import com.hex.ds.hdtp.core.app.data.contrast.dto.CrossDbContrastCommonDto;
import com.hex.ds.hdtp.core.app.data.contrast.dto.CrossDbContrastSingleResultDto;
import com.hex.ds.hdtp.core.app.data.contrast.dto.CrossDbContrastTableStructureDto;


public interface IContrastTableStructureService {

    boolean contrastTableStructure(CrossDbContrastCommonDto contrastCommon, CrossDbContrastTableStructureDto contrastTableStructure, String runLogPkId);

    /**
     * @param contrastInfo
     * @Method contrastCreateTable
     * @Param
     * @Return java.lang.Boolean
     * @Description 建表对比
     * @Author Wang zhihao
     * @Date 2023/8/17 17:22
     * @Version V1.0
     */
    CrossDbContrastSingleResultDto contrastCreateTable(BasicContrastInfo contrastInfo);

    /**
     * @param contrastInfo
     * @Method contrastFieldCount
     * @Param
     * @Return java.lang.Boolean
     * @Description 字段总数对比
     * @Author Wang zhihao
     * @Date 2023/8/17 17:32
     * @Version V1.0
     */
    CrossDbContrastSingleResultDto contrastFieldCount(BasicContrastInfo contrastInfo);

    /**
     * @param transferListPkId
     * @Method contrastFieldNameWithMap
     * @Param contrastInfo
     * @Return java.lang.Boolean
     * @Description 根据表迁移记录进行字段映射处理的字段名称对比
     * @Author Wang zhihao
     * @Date 2023/8/30 13:51
     * @Version V1.0
     */
    CrossDbContrastSingleResultDto contrastFieldNameWithMap(BasicContrastInfo contrastInfo, String transferListPkId);

    /**
     * @param contrastInfo
     * @Method contrastPartitionField
     * @Param
     * @Return java.lang.Boolean
     * @Description 分区字段对比
     * @Author Wang zhihao
     * @Date 2023/8/17 19:38
     * @Version V1.0
     */
    Boolean contrastPartitionField(BasicContrastInfo contrastInfo);

    /**
     * @Method contrastFieldTypeWithMap
     * @Param
     * @Param contrastInfo
     * @Param transferListPkId
     * @Return java.lang.Boolean
     * @Description 字段类型比较
     * @Author xin.zhao
     * @Date 2023/9/20 11:35
     * @Version V1.0
     */
    CrossDbContrastSingleResultDto contrastFieldTypeWithMap(BasicContrastInfo contrastInfo, String transferListPkId);

    /**
     * @Method contrastFieldLengthWithMap
     * @Param
     * @Param contrastInfo
     * @Param transferListPkId
     * @Return java.lang.Boolean
     * @Description 字段长度比较
     * @Author xin.zhao
     * @Date 2023/9/20 14:28
     * @Version V1.0
     */
    CrossDbContrastSingleResultDto contrastFieldLengthWithMap(BasicContrastInfo contrastInfo, String transferListPkId);

    /**
     * @Method contrastFieldLengthWithMap
     * @Param
     * @Param contrastInfo
     * @Param transferListPkId
     * @Return java.lang.Boolean
     * @Description 字段精度对比
     * @Author xin.zhao
     * @Date 2023/9/27 9:41
     * @Version V1.0
     */
    CrossDbContrastSingleResultDto contrastFieldAccuracy(BasicContrastInfo contrastInfo, String transferListPkId);

    /**
     * @Method selectEncodingStyle
     * @Param
     * @Param contrastInfo
     * @Return com.hex.ds.hdtp.core.app.data.contrast.dto.CrossDbContrastSingleResultDto
     * @Description 编码风格
     * @Author xin.zhao
     * @Date 2023/12/5 17:51
     * @Version V1.0
     */
    CrossDbContrastSingleResultDto selectEncodingStyle(BasicContrastInfo contrastInfo);
}
